Table: 透過定義資料的 欄位(Column)
與 列(ROW)
所組成.
關聯式資料庫
: 系統會使用多張Table儲存資料,而Table間的關聯性是靠PK
與FK
來識別身分,以下會說明 PK 與 FK。RDBMS 適合用於較複雜的資料管理
上,但修改的彈性較低
。
ex. mySQL, Oracle...
1. 主鍵(Primary key, PK): 可想成身分證字號,每筆資料都有自己專屬識別代號,以區別不同筆資料【注意】
PK不可為 Null,因為PK是關聯式Table之間參照的ID,若NULL
或者非唯一
值,都會造成資料表間無法關聯。【注意】
在建立Table的時候,可以將PK設定為AI(Auto Increment)
,即預設的ID,新增資料時候會自動帶入數值。
phpMyAdmin 如何設定自動增量主鍵(語法+GUI設定方式)
2. 外來鍵(Foreign key, FK): 此欄位用於參照其他Table,可理解成查字典所需要的關鍵字。
【RDBMS Example】
每個USER有自己的帳號與密碼,且系統會by user紀錄不同使用者問的問題
非關聯式資料庫
: 將每張table直接定義在檔案中,類似JSON,由Key-Value
組成。適合用於較簡易的資料管理
上,修改彈性高
。
ex. Mongo DB
【NoSQL Example】
透過{
、}
將每筆資料作區別(紅框代表一筆資料), 且資料在修改上有彈性,可以設定Bob有skill但Henry沒有skill
關聯式資料庫(RDBMS)與非關聯式資料庫(NoSQL)的比較 - 筆記
RDBMS vs. NOSQL | 關聯式資料庫 vs. 非關聯式資料庫
JSON 與 NoSQL
新手到進階學 MongoDB